﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MIZ.Models;

namespace MIZ.Controllers
{
    public class MeetinstrumentenController : Controller
    {
        private DatabaseModelContainer db = new DatabaseModelContainer();

        //
        // GET: /Meetinstrumenten/

        public ActionResult Index()
        {
            return View(db.MeetinstrumentSet.ToList());
        }

        //
        // GET: /Meetinstrumenten/Details/5

        public ActionResult Details(int id = 0)
        {
            Meetinstrument meetinstrument = Meetinstrument.ReturnViews(id);

            if (meetinstrument == null)
            {
                return HttpNotFound();
            }
            return View(meetinstrument);
        }

        //
        // GET: /Meetinstrumenten/Create

        public ActionResult Create()
        {
            ViewBag.lichaamsregioId = new SelectList(db.LichaamsRegioSet, "Id", "Lichaams_Regio");
            ViewBag.aadoeningId = new SelectList(db.AandoeningenSet, "Id", "Aandoening");
            ViewBag.functiesId = new SelectList(db.FunctiesSet, "Id", "Functie");
            ViewBag.doelgroepId = new SelectList(db.DoelgroepSet, "Id", "Doelgroep_meetinstrument");
            ViewBag.taalId = new SelectList(db.TaalSet, "Id", "Taal_meetinstrument");
            return View();
        }

        //
        // POST: /Meetinstrumenten/Create

        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Create(Meetinstrument meetinstrument, string command)
        {
            ViewBag.lichaamsregioId = new SelectList(db.LichaamsRegioSet, "Id", "Lichaams_Regio");
            ViewBag.aadoeningId = new SelectList(db.AandoeningenSet, "Id", "Aandoening");
            ViewBag.functiesId = new SelectList(db.FunctiesSet, "Id", "Functie");
            ViewBag.doelgroepId = new SelectList(db.DoelgroepSet, "Id", "Doelgroep_meetinstrument");
            ViewBag.taalId = new SelectList(db.TaalSet, "Id", "Taal_meetinstrument");

            if (ModelState.IsValid)
            {
                if (command == "Voeg Lichaamsregio Toe Aan Lijst") { meetinstrument = Meetinstrument.VoegDataToeAanLijsten(meetinstrument, Meetinstrument.DropDownlist.Lichaams_Regio, Request["lichaamsregioId"]); }
                if (command == "Voeg Aandoening Toe Aan Lijst") { meetinstrument = Meetinstrument.VoegDataToeAanLijsten(meetinstrument, Meetinstrument.DropDownlist.Aandoeningen, Request["aadoeningId"]); }
                if (command == "Voeg Functie Toe Aan Lijst") { meetinstrument = Meetinstrument.VoegDataToeAanLijsten(meetinstrument, Meetinstrument.DropDownlist.Functie, Request["functiesId"]); }
                if (command == "Voeg Taal Toe Aan Lijst") { meetinstrument = Meetinstrument.VoegDataToeAanLijsten(meetinstrument, Meetinstrument.DropDownlist.Taal, Request["taalId"]); }
                if (command == "Voeg Doelgroep Toe Aan Lijst") { meetinstrument = Meetinstrument.VoegDataToeAanLijsten(meetinstrument, Meetinstrument.DropDownlist.Doelgroep, Request["doelgroepId"]); }
                if (command == "Voeg toe")
                {
                    meetinstrument = Meetinstrument.Create(meetinstrument);
                    return RedirectToAction("Index");
                }
            }

            return View(meetinstrument);
        }

        //
        // GET: /Meetinstrumenten/Edit/5

        public ActionResult Edit(int id = 0)
        {
            Meetinstrument meetinstrument = Meetinstrument.ReturnViews(id);
            if (meetinstrument == null)
            {
                return HttpNotFound();
            }
            return View(meetinstrument);
        }

        //
        // POST: /Meetinstrumenten/Edit/5

        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Edit(Meetinstrument meetinstrument, string command)
        {
            if (ModelState.IsValid)
            {
                if (command == "Opslaan")
                {
                    meetinstrument = Meetinstrument.Edit(meetinstrument);
                }
                return RedirectToAction("Index");
            }
            return View(meetinstrument);
        }

        //
        // GET: /Meetinstrumenten/Delete/5

        public ActionResult Delete(int id = 0)
        {
            Meetinstrument meetinstrument = Meetinstrument.ReturnViews(id);
            if (meetinstrument == null)
            {
                return HttpNotFound();
            }
            return View(meetinstrument);
        }

        //
        // POST: /Meetinstrumenten/Delete/5

        [HttpPost, ActionName("Delete")]
        [ValidateAntiForgeryToken]
        public ActionResult DeleteConfirmed(int id, string command)
        {
            if (command == "Verwijder")
            {
                Meetinstrument meetinstrument = Meetinstrument.Delete(id);
            }
            return RedirectToAction("Index");
        }

        //
        // GET: /Meetinstrumenten/DatabaseDoorzoekenStart

        public ActionResult DatabaseDoorzoekenStart()
        {
            return View();
        }

        //
        // POST: /Meetinstrumenten/DatabaseDoorzoekenStart

        [HttpPost]
        public ActionResult DatabaseDoorzoekenStart(Meetinstrument meetinstrument, string command)
        {

            if (command == "Ga naar de keuzehulp")
            {
                return RedirectToAction("DatabaseDoorzoekenLichaamsRegio");
            }
            if (command == "Bekijk alle instrumenten")
            {
                return RedirectToAction("DatabaseDoorzoekenAlleInstrumenten");
            }

            return View(meetinstrument);
        }

        //
        // GET: /Meetinstrumenten/DatabaseDoorzoekenAlleInstrumenten

        public ActionResult DatabaseDoorzoekenAlleInstrumenten()
        {
            ViewData["Meetinstrumenten"] = db.MeetinstrumentSet.ToList();
            return View();
        }

        //
        // POST: /Meetinstrumenten/DatabaseDoorzoekenAlleInstrumenten

        [HttpPost]
        public ActionResult DatabaseDoorzoekenAlleInstrumenten(Meetinstrument meetinstrument)
        {
            if (ModelState.IsValid)
            {
            }

            return View(meetinstrument);
        }

        //
        // GET: /Meetinstrumenten/DatabaseDoorzoekenLichaamsRegio

        public ActionResult DatabaseDoorzoekenLichaamsRegio()
        {
            ViewData.Add("lichaamsregioId", Meetinstrument.ReturnList(Meetinstrument.DropDownlist.Lichaams_Regio));
            Meetinstrument.VeranderVraagNummer(Meetinstrument.DropDownlist.Lichaams_Regio);
            ViewData["Percent"] = Meetinstrument.GetSetVoortgangBalk;
            ViewData["Percent1"] = Meetinstrument.GetSetVraagNummer;
            return View();
        }

        //
        // POST: /Meetinstrumenten/DatabaseDoorzoekenLichaamsRegio

        [HttpPost]
        public ActionResult DatabaseDoorzoekenLichaamsRegio(Meetinstrument meetinstrument)
        {
            string keuze = Request["lichaamsregioId"];
            Meetinstrument.VoerKeuzesDoor(Meetinstrument.DropDownlist.Lichaams_Regio, keuze);
            return RedirectToAction("DatabaseDoorzoekenAandoening");

            return View(meetinstrument);
        }

        //
        // GET: /Meetinstrumenten/DatabaseDoorzoekenAandoening

        public ActionResult DatabaseDoorzoekenAandoening()
        {
            ViewData.Add("aadoeningId", Meetinstrument.ReturnList(Meetinstrument.DropDownlist.Aandoeningen));
            Meetinstrument.VeranderVraagNummer(Meetinstrument.DropDownlist.Aandoeningen);
            ViewData["Percent"] = Meetinstrument.GetSetVoortgangBalk;
            ViewData["Percent1"] = Meetinstrument.GetSetVraagNummer;
            return View();
        }

        //
        // POST: /Meetinstrumenten/DatabaseDoorzoekenAandoening

        [HttpPost]
        public ActionResult DatabaseDoorzoekenAandoening(Meetinstrument meetinstrument)
        {
            string keuze = Request["aadoeningId"];
            Meetinstrument.VoerKeuzesDoor(Meetinstrument.DropDownlist.Aandoeningen, keuze);
            return RedirectToAction("DatabaseDoorzoekenFunctie");

            return View(meetinstrument);
        }

        //
        // GET: /Meetinstrumenten/DatabaseDoorzoekenFunctie

        public ActionResult DatabaseDoorzoekenFunctie()
        {
            ViewData.Add("functiesId", Meetinstrument.ReturnList(Meetinstrument.DropDownlist.Functie));
            Meetinstrument.VeranderVraagNummer(Meetinstrument.DropDownlist.Functie);
            ViewData["Percent"] = Meetinstrument.GetSetVoortgangBalk;
            ViewData["Percent1"] = Meetinstrument.GetSetVraagNummer;
            return View();
        }

        //
        // POST: /Meetinstrumenten/DatabaseDoorzoekenFunctie

        [HttpPost]
        public ActionResult DatabaseDoorzoekenFunctie(Meetinstrument meetinstrument)
        {
            string keuze = Request["functiesId"];
            Meetinstrument.VoerKeuzesDoor(Meetinstrument.DropDownlist.Functie, keuze);
            return RedirectToAction("DatabaseDoorzoekenDoelgroep");

            return View(meetinstrument);
        }

        //
        // GET: /Meetinstrumenten/DatabaseDoorzoekenDoelgroep

        public ActionResult DatabaseDoorzoekenDoelgroep()
        {
            ViewData.Add("doelgroepId", Meetinstrument.ReturnList(Meetinstrument.DropDownlist.Doelgroep));
            Meetinstrument.VeranderVraagNummer(Meetinstrument.DropDownlist.Doelgroep);
            ViewData["Percent"] = Meetinstrument.GetSetVoortgangBalk;
            ViewData["Percent1"] = Meetinstrument.GetSetVraagNummer;
            return View();
        }

        //
        // POST: /Meetinstrumenten/DatabaseDoorzoekenDoelgroep

        [HttpPost]
        public ActionResult DatabaseDoorzoekenDoelgroep(Meetinstrument meetinstrument)
        {
            string keuze = Request["doelgroepId"];
            Meetinstrument.VoerKeuzesDoor(Meetinstrument.DropDownlist.Doelgroep, keuze);
            return RedirectToAction("DatabaseDoorzoekenTaal");

            return View(meetinstrument);
        }

        //
        // GET: /Meetinstrumenten/DatabaseDoorzoekenTaal

        public ActionResult DatabaseDoorzoekenTaal()
        {
            ViewData.Add("taalId", Meetinstrument.ReturnList(Meetinstrument.DropDownlist.Taal));
            Meetinstrument.VeranderVraagNummer(Meetinstrument.DropDownlist.Taal);
            ViewData["Percent"] = Meetinstrument.GetSetVoortgangBalk;
            ViewData["Percent1"] = Meetinstrument.GetSetVraagNummer;
            return View();
        }

        //
        // POST: /Meetinstrumenten/DatabaseDoorzoekenTaal

        [HttpPost]
        public ActionResult DatabaseDoorzoekenTaal(Meetinstrument meetinstrument)
        {
            string keuze = Request["taalId"];
            Meetinstrument.VoerKeuzesDoor(Meetinstrument.DropDownlist.Taal, keuze);
            return RedirectToAction("DatabaseDoorzoekenResultaat");

            return View(meetinstrument);
        }

        //
        // GET: /Meetinstrumenten/DatabaseDoorzoekenResultaat

        public ActionResult DatabaseDoorzoekenResultaat()
        {
            ViewData["Meetinstrumenten"] = Meetinstrument.GetSetMeetinstrumentenLijst;

            return View();
        }

        //
        // POST: /Meetinstrumenten/DatabaseDoorzoekenTaal

        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult DatabaseDoorzoekenResultaat(Meetinstrument meetinstrument)
        {
            return RedirectToAction("DatabaseDoorzoekenResultaat");

            return View(meetinstrument);
        }

        protected override void Dispose(bool disposing)
        {
            db.Dispose();
            base.Dispose(disposing);
        }
    }
}